﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Remoting.Messaging;
using HouodeFun.TrainCenter.IDAL;

namespace HouodeFun.TrainCenter.DAL
{
    //获得 一个 具体的数据库操作 的 实现类(实现了 IDBSession接口的子类)
    //此时实现一个接口的好处，可以通过更换 工厂，来 切换不同的存放方式，以及 不同的 读取用户要求 创建IDbSession的方式
    public class DbSessionFactory : IDbSessionFactory
    {
        public IDbSession GetCurrentDbSession()
        {
            //线程内唯一
            
            IDbSession dbSession = CallContext.GetData(typeof(DbSession).FullName) as DbSession;
            if (dbSession == null)
            {
                //创建实体产品对象
                dbSession = new DbSession();//使用 ef操作数据库的对象
                CallContext.SetData(typeof(DbSession).FullName, dbSession);
            }
            return dbSession;
        }
    }
}
